struct DDRState
{
    vector<deque<int> > arrowPositions;
    int frameNum;

    int score;
    int arrowsHit;
    int arrowsMissed;
};

class GameDDR : public Game
{
public:
    void Init();
    string Name() { return "DDR"; }
    void NewGame();
    void Step(ControllerState &controller);
    ControllerState SimpleAI();

private:
    void MakeFrameSprites();

    DDRState _state;

    // Sprite IDs
    int _arrowSprites[4];
    int _arrowBaseSprites[4];
};